'************************************************************************************
' Copyright © 2003-2005 Kathleen Dollard
'
' This software is provided 'as-is', without any express or implied warranty. In no 
' event will the author be held liable for any damages arising from the use of this
' software.
' 
' You may use this software for any purpose, including commercial applications, 
' and you may redistribute this software as part of application delivery: however, 
' this copyright notice may not be removed and you may not otherwise redistribute 
' this software directly other than providing a link to wwww.gendotnet.com. 
'
' You may alter this software to better server your needs (I'd like to hear about your 
' changes in order to make the software better). If you alter the softwre, you must  
' clearly mark it as altered and must not be misrepresented as the original software.
' nor wholly your original work.
'*************************************************************************************
Option Strict On
Option Explicit On 

Imports System

Namespace KADGen.CodeGenerationSupport
   Public Interface IStatusDoc
      Inherits IStatusElement
      ReadOnly Property StatusOutputEntries() As OutputEntryCollection
      ReadOnly Property ChildStatus() As CodeGenerationSupport.OutputStatus
   End Interface

   Public Interface IStatusElement
      Property Status() As OutputStatus
      ReadOnly Property StartDateTime() As System.DateTime
      ReadOnly Property EndDateTime() As System.DateTime
   End Interface

   Public Interface IStatusSection
      Inherits IStatusElement
      Property Guid() As System.Guid
      ReadOnly Property ChildStatus() As CodeGenerationSupport.OutputStatus
      ReadOnly Property StatusOutputEntries() As OutputEntryCollection
      'Property StatusDirectives() As DirectiveCollection
      ReadOnly Property StatusDoc() As IStatusDoc
   End Interface

   Public Interface IStatusDirective
      Inherits IStatusElement
      Property Guid() As System.Guid
      Property CountSelected() As Int32
      Property CountCreated() As Int32
      Property CountOutput() As Int32
      Property CurrentFileName() As String
      Sub ClearOutputs()
      ReadOnly Property StatusDataSet() As Data.DataSet
      ReadOnly Property ChildStatus() As CodeGenerationSupport.OutputStatus
      ReadOnly Property StatusOutputs() As StatusOutputCollection
      ReadOnly Property StatusOutputEntries() As OutputEntryCollection
      'Property Outputs() As OutputCollection
      Function AddStatusOutput( _
               ByVal fileName As String, _
               ByVal fileTreatment As FileTreatment) _
               As IStatusOutput
   End Interface

   Public Interface IStatusOutput
      Inherits IStatusElement
      Property FileName() As String
      ReadOnly Property ShortFileName() As String
      Property FileTreatment() As FileTreatment
      Property DirectiveName() As String
      Property SectionName() As String
      ReadOnly Property ChildStatus() As CodeGenerationSupport.OutputStatus
      ReadOnly Property StatusOutputEntries() As OutputEntryCollection
      'Property OutputEntries() As OutputEntryCollection
      Function AddStatusInfo( _
               ByVal source As String, _
               ByVal verboseLevel As VerboseLevel, _
               ByVal message As String) _
               As IStatusInfo
      Function AddStatusWarning( _
               ByVal source As String, _
               ByVal message As String, _
               ByVal Exception As System.Exception) _
               As IStatusWarning
      Function AddStatusFailure( _
               ByVal source As String, _
               ByVal message As String, _
               ByVal Exception As System.Exception) _
               As IStatusFailure
      Function AddStatusException( _
               ByVal source As String, _
               ByVal message As String, _
               ByVal Exception As System.Exception) _
               As IStatusException
   End Interface

   Public Interface IStatusInfoEntry
      Inherits IStatusElement
      Property StatusIcon() As OutputStatus
      Property FileName() As String
      Property ShortFileName() As String
      Property FileTreatment() As FileTreatment
      ReadOnly Property DirectiveType() As String
      Property DirectiveName() As String
      Property SectionName() As String
      Property Message() As String
      Property DateTime() As DateTime
      Property Category() As String
      Property VerboseLevel() As VerboseLevel
      Property Source() As String
      Property Title() As String
      Property Exception() As System.Exception
   End Interface

   Public Interface IStatusInfo
      Inherits IStatusInfoEntry
   End Interface

   Public Interface IStatusWarning
      Inherits IStatusInfoEntry
   End Interface

   Public Interface IStatusFailure
      Inherits IStatusInfoEntry
   End Interface

   Public Interface IStatusException
      Inherits IStatusInfoEntry
   End Interface

End Namespace